In many applications, digital datastreams are used to move high volumes of data at high speeds. A common example is MPEG data, which contains audio and video information, encoded into a digital serial datastream according to an MPEG standard--MPEG-2 being most popular at the moment. MPEG encoding is used to transmit a video clip over a network or the internet, to cite just one example. At the receiving end, the datastream must be decoded or "reconstructed" to reproduce and output the original audio and video information. This job is complicated by the volume of data, and the fact that the datastream must be reconstructed in "real time", i.e. essentially at the same rate it is being received. One approach to the problem is to provide adequate memory to buffer incoming data in the worst case.
Buffering incoming digital data for further processing appears in other contexts as well. For example, U.S. Pat. No. 5,163,132 to DuLac et al., is directed to interfacing a disk drive to a small computer system interface (SCSI) bus by use of two buffers connected between a buffer-in bus and a buffer-out bus. That architecture allows data to be read out from a first filled buffer, while simultaneously filling the second buffer. When the second buffer is full and the first buffer is empty, the second buffer may be read while the first buffer is again filled. This "toggling" between the two buffers continues until the required data transfer is complete. In the disk drive context, both the system bus data rates and the disk drive controller data rates are well known. Accordingly, the buffering scheme can be entirely synchronized and the amount of memory required is well defined. In buffering an incoming MPEG datastream, however, the time necessary for reconstructing the video information varies, and, accordingly, the buffering requirements vary from one application to another and, indeed, from one frame of video data to another even during a single transmission. Accordingly, the architecture taught by DuLac et al., is not very helpful in MPEG processing.
U.S. Pat. No. 5,119,482 to Lloyd describes a navigation system data interface box to allow transfer of INS data to a PC for flexible in-flight use of data received from the INS. Here, two pages of memory buffer are "flipped" or toggled, somewhat like the system described in DuLac et al. Lloyd further describes means for inhibiting the page flips when the data converter is busy. The PC then requests a cycle of data by sending a control bit to the converter circuit, much like a ready bit. However, in handling an incoming MPEG datastream, the receiving apparatus does not have the luxury of asserting a wait state or "not ready" flag. The MPEG datastream must be properly received, buffered and reconstructed at the incoming data rate or data will be lost. Accordingly, the buffering system must be able to adapt to variations in delay for reconstructing the data. For this reason, the architecture described in the Lloyd patent would be inadequate for processing an MPEG or other continuous type of datastream.
U.S. Pat. No. 5,528,522 to Delguercio describes a portable radar or beacon emulator. In the emulator, a computer calculates data for one antennae scan and stores it in a memory bank. As that data is being read out as radar video which is displayed on a screen, the computer calculates the data for the next scan and stores it in a next data bank. In this way, a continuous series of scans is presented without requiring the extensive computational power that would be required to display a radar scan as it is being calculated. Thus, this patent discloses another application of switching or toggling a pair of memory banks; allowing output from one memory bank while data is written into or generated in the other memory bank. As mentioned above, however, receiving an MPEG data stream presents additional challenges. Because of variations in the time necessary for reconstructing the video, the memory buffer requirements vary dynamically. While this problem could be addressed by providing large quantities of memory, that approach is neither efficient nor cost-effective. The need thus remains for improved methods and apparatus for receiving and reconstructing high bandwidth digital datastreams, such as MPEG datastreams, while minimizing the usage of memory space.